Holographic interface for voice commands

ABSTRACT

A computer implemented method, computer system, and computer program product for executing a voice command. A number of processor units displays a view of a location with voice command devices in response to detecting the voice command from a user. The number of processor units displays a voice command direction for the voice command in the view of the location. The number of processor units changes the voice command direction in response to a user input. The number of processor units identifies a voice command device from the voice command devices in the location based on the voice command direction to form a selected voice command device. The number of processor units executes the voice command using the selected voice command device.

BACKGROUND 1. Field:

The disclosure relates generally to an improved computer system and morespecifically to processing voice commands using computer system with aholographic interface.

2. Description of the Related Art:

Artificial intelligence assistance systems using voice user interfaceson smart devices provide users with access to a digital assistant fromvirtually any location where a smart device is located. Smart devicessuch as smart speakers employ speech recognition to perform tasks orexecute commands from a user. The digital assistant replies to queriesor questions, provide entertainment, play music, present information,provide assistance, control other devices, or perform other tasksthrough voice user interface.

Multiple smart devices can be present in a location such as in a houseor office to form a multi-device ecosystem at that location. Somedevices, such as smart speakers can detect voice commands and verballyrespond to voice commands. Other devices such as a thermostat namedetect voice commands but perform actions such as changing thetemperature instead of providing a verbal response.

With multi-device ecosystems, different types of smart devices can bepresent in the location. With different types of smart devices, the samecommand can be executed at the same time by different devices. Dependingon the type of devices executing a command, the same or different resultcan occur.

SUMMARY

According to one illustrative embodiment, a computer implemented methodexecutes a voice command. A number of processor units displays a view ofa location with voice command devices in response to detecting the voicecommand from a user. The number of processor units displays a voicecommand direction for the voice command in the view of the location. Thenumber of processor units changes the voice command direction inresponse to a user input. The number of processor units identifies avoice command device from the voice command devices in the locationbased on the voice command direction to form a selected voice commanddevice. The number of processor units executes the voice command usingthe selected voice command device. According to other illustrativeembodiments, a computer system and computer program product forexecuting a voice command are provided.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a pictorial representation of a network of data processingsystems in which illustrative embodiments may be implemented;

FIG. 2 is a block diagram of a voice execution environment in accordancewith an illustrative embodiment;

FIG. 3 is a process flow diagram for executing voice commands inaccordance with an illustrative embodiment;

FIG. 4 is a pictorial illustration of a user interface in accordancewith an illustrative embodiment;

FIG. 5 is a flowchart of a process for executing a voice command inaccordance with an illustrative embodiment;

FIG. 6 is a flowchart of a process for editing a voice command inaccordance with an illustrative embodiment;

FIG. 7 is a flowchart of a process for determining a voice commanddirection in accordance with an illustrative embodiment;

FIG. 8 is a flowchart of a process for predicting a voice commanddirection in accordance with an illustrative embodiment;

FIG. 9 is a flowchart of a process for displaying the voice commanddirection in accordance with an illustrative embodiment; and

FIG. 10 is a block diagram of a data processing system in accordancewith an illustrative embodiment.

DETAILED DESCRIPTION

The present invention may be a system, a method, and/or a computerprogram product at any possible technical detail level of integration.The computer program product may include a computer readable storagemedium (or media) having computer readable program instructions thereonfor causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Smalltalk, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The computer readable program instructions may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider). In some embodiments, electronic circuitry including,for example, programmable logic circuitry, field-programmable gatearrays (FPGA), or programmable logic arrays (PLA) may execute thecomputer readable program instructions by utilizing state information ofthe computer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a computer, or other programmable data processing apparatusto produce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks. These computerreadable program instructions may also be stored in a computer readablestorage medium that can direct a computer, a programmable dataprocessing apparatus, and/or other devices to function in a particularmanner, such that the computer readable storage medium havinginstructions stored therein comprises an article of manufactureincluding instructions which implement aspects of the function/actspecified in the flowchart and/or block diagram block or blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be accomplished as one step, executed concurrently,substantially concurrently, in a partially or wholly temporallyoverlapping manner, or the blocks may sometimes be executed in thereverse order, depending upon the functionality involved. It will alsobe noted that each block of the block diagrams and/or flowchartillustration, and combinations of blocks in the block diagrams and/orflowchart illustration, can be implemented by special purposehardware-based systems that perform the specified functions or acts orcarry out combinations of special purpose hardware and computerinstructions.

The illustrative embodiments recognize and take into account a number ofdifferent considerations. For example, the illustrative embodimentsrecognize and take into account that in some instances it may beundesirable for multiple smart devices to process the same command atthe same time. For example, the illustrative embodiments recognize andtake into account that a user may issue a command to play music in alocation, such as a house. The illustrative embodiments recognize andtake account that this command may be processed by two smart devices intwo different rooms. As a result, the illustrative embodiments recognizeand take into account that music may be in the two different rooms inwhich the two smart devices are located. However, the illustrativeembodiments can recognize and take account that playing music in one ofthe two rooms may be undesirable. For example, the illustrativeembodiments recognize and take into account that a person may besleeping or studying in a room when music is played from processing thecommand and that playing music in that room is undesirable.

Therefore, it would be desirable to have a method and apparatus thattake into account at least some of the issues discussed above, as wellas other possible issues. For example, it would be desirable to have amethod and apparatus that overcome a problem with the processing ofcommands by multiple smart devices in a location. Thus, the illustrativeembodiments provide a method, apparatus, system, and computer programproduct for processing voice commands. A number of processor unitsdisplays a three-dimensional view of a location with voice commanddevices in response to detecting a voice command from a user. The numberof processor units displays a voice command direction for the voicecommand in the three-dimensional view of the location. The number ofprocessor units changes the voice command direction in response to auser input. The number of processor units identifies a voice commanddevice from the voice command devices in the location based on the voicecommand direction to form a selected voice command device, and processesthe voice command using the selected voice command device.

As used herein, “a number of” when used with reference to items, meansone or more items. For example, “a number of processor units” is one ormore processor units.

Thus, illustrative embodiments provide a computer implemented method,computer system, and computer program product for executing a voicecommand. A number of processor units displays a view of a location withvoice command devices in response to detecting the voice command from auser. The number of processor units displays a voice command directionfor the voice command in the view of the location. The number ofprocessor units changes the voice command direction in response to auser input. The number of processor units identifies a voice commanddevice from the voice command devices in the location based on the voicecommand direction to form a selected voice command device. The number ofprocessor units executes the voice command using the selected voicecommand device.

With reference now to the figures and, in particular, with reference toFIG. 1 , a pictorial representation of a network of data processingsystems is depicted in which illustrative embodiments may beimplemented. Network data processing system 100 is a network ofcomputers in which the illustrative embodiments may be implemented.Network data processing system 100 contains network 102, which is themedium used to provide communications links between various devices andcomputers connected together within network data processing system 100.Network 102 may include connections, such as wire, wirelesscommunication links, or fiber optic cables.

In the depicted example, server computer 104 and server computer 106connect to network 102 along with storage unit 108. In addition, clientdevices 110 connect to network 102. As depicted, client devices 110include client computer 112, client computer 114, and client computer116. Client devices 110 can be, for example, computers, workstations, ornetwork computers. In the depicted example, server computer 104 providesinformation, such as boot files, operating system images, andapplications to client devices 110. Further, client devices 110 can alsoinclude other types of client devices such as mobile phone 118, tabletcomputer 120, and smart glasses 122. In this illustrative example,server computer 104, server computer 106, storage unit 108, and clientdevices 110 are network devices that connect to network 102 in whichnetwork 102 is the communications media for these network devices. Someor all of client devices 110 may form an Internet of things (IoT) inwhich these physical devices can connect to network 102 and exchangeinformation with each other over network 102.

Client devices 110 are clients to server computer 104 in this example.Network data processing system 100 may include additional servercomputers, client computers, and other devices not shown. Client devices110 connect to network 102 utilizing at least one of wire, opticalfiber, or wireless connections.

Program instructions located in network data processing system 100 canbe stored on a computer-recordable storage media and downloaded to adata processing system or other device for use. For example, programinstructions can be stored on a computer-recordable storage media onserver computer 104 and downloaded to client devices 110 over network102 for use on client devices 110.

In the depicted example, network data processing system 100 is theInternet with network 102 representing a worldwide collection ofnetworks and gateways that use the Transmission ControlProtocol/Internet Protocol (TCP/IP) suite of protocols to communicatewith one another. At the heart of the Internet is a backbone ofhigh-speed data communication lines between major nodes or hostcomputers consisting of thousands of commercial, governmental,educational, and other computer systems that route data and messages. Ofcourse, network data processing system 100 also may be implemented usinga number of different types of networks. For example, network 102 can becomprised of at least one of the Internet, an intranet, a local areanetwork (LAN), a metropolitan area network (MAN), or a wide area network(WAN). FIG. 1 is intended as an example, and not as an architecturallimitation for the different illustrative embodiments.

Further, the phrase “at least one of,” when used with a list of items,means different combinations of one or more of the listed items can beused, and only one of each item in the list may be needed. In otherwords, “at least one of” means any combination of items and number ofitems may be used from the list, but not all of the items in the listare required. The item can be a particular object, a thing, or acategory.

For example, without limitation, “at least one of item A, item B, oritem C” may include item A, item A and item B, or item B. This examplealso may include item A, item B, and item C or item B and item C. Ofcourse, any combinations of these items can be present. In someillustrative examples, “at least one of” can be, for example, withoutlimitation, two of item A; one of item B; and ten of item C; four ofitem B and seven of item C; or other suitable combinations.

In this illustrative example, house 126 has a number of different roomsin which voice command devices are present. Voice command devices can beany device capable of providing a voice user interface to processcommands. In the illustrative example, voice command devices can becomputing devices such as smart speaker 128, smart speaker 130, andsmart television 132 in house 126. These devices can be IoT devicessimilar to client devices 110.

In this illustrative example, user 134 is a person who may speak togenerate a voice command 136. In this illustrative example, voicecommand 136 may can be detected by at least one of smart speaker 128,smart speaker 130, smart television 132, or smart phone 138 carried byuser 134. Voice command 136 can be sent to voice command processor 140over network 102. In this illustrative example, voice command 136 can bein a recording of the voice of user 134. Voice command processor 140 canuse various processes such as speech recognition algorithms, naturallanguage processing, or other voice processing algorithms to identifyvoice command 136 in the recording for execution.

Additional information such as position 142 of user 134 can be sent tovoice command processor 140 over network 102. Position 142 can bedetermined in a number of different ways. For example, position 142 canbe determined using a global positioning system in smart phone 138carried by user 134.

Position 142 of user 134 can then be a three-dimensional location ofuser 134 within house 126. In this illustrative example, position 142 ofuser 134 can be three-dimensional coordinates in a three-dimensionalcoordinates system. Additionally, the position 142 of user 134 can alsoinclude a direction or facing for user 134.

As depicted, voice command processor 140 can cause a three-dimensionalview of house 126 in the form of a holographic interface 144 to bedisplayed by smart phone 138. As depicted, position 142 of user 134 canbe used to determine where the user 134 is located in house 126. Withthis determination, voice command processor 140 can cause athree-dimensional view of house 126 to be displayed to user 134 on smartphone 138.

In this illustrative example, smart phone 136 has a holographic displaythat can produce a virtual three-dimensional imaging space. In anotherillustrative example, the three-dimensional view of house 126 can be athree-dimensional image displayed on a display in smart phone 138instead of a holographic projection.

Holographic interface 144 is a hologram that can receive user input. Inthis illustrative example, holographic interface 144 is a display of athree-dimensional view of house 126 that can include a graphicindicating a voice command direction for voice command 136. This voicecommand direction can be determined by voice command processor 140 usinga simulation model for house 126 and the position of user 134.

In this illustrative example, the voice command direction can indicate avoice command device that will execute voice command 136. User 134 canchange the voice command direction to select a different voice commanddevice. For example, user 134 can interact with holographic interface144 displayed by smart phone 138 to change the voice command directionfor voice command 136. For example, the voice command direction can bemade to identify smart speaker 130 as the device used to execute voicecommand 136. User 134 can interact with holographic interface 144 tochange the voice command direction to identify smart television 132.

In this manner, user 134 can define where voice command 136 is to beexecuted before voice command 136 is executed. In other words, user 134can change the voice command direction such that the different voicecommand device executes voice command 136 in place of the voice commanddevice initially identified by the force command direction as seen inholographic interface 144.

User 134 can then initiate the execution of voice command 136 using thevoice command device identified by the voice command direction. Voicecommand processor 140 then executes voice command 136 using the voicecommand device identified by the voice command direction. For example,if the voice command direction selects smart television 132, then voicecommand processor 140 executes voice command 136 using smart television132. As result, smart television 132 is the voice command device thatexecutes voice command 136 generated by user 134.

Additionally, voice command processor 140 can learn over time and adaptto user input from user 134. For example, if each time the voice commanddirection is shown to be smart speaker 130 with user 134 facing smartspeaker 130 in the dining room and user 134 changes the voice commanddirection to smart television 132, voice command processor 140 can adaptto identify the voice command direction has been to smart television 132even though user 134 is in the dining room and faces smart speaker 130.This adaptation can be made after some number of times that user 134changes the voice command direction. The adaptation can wait to ensurethat user 134 consistently desires the voice command direction toexecute the voice command using smart television 132. Further, thisadaptation for generating the voice command direction can be for aparticular voice command in these illustrative examples.

The illustrative example in FIG. 1 is only provided as oneimplementation and not meant to limit the implementation of other resultexamples. For example, other numbers of voice command devices can bepresent in addition to or in place of smart speaker 128, smart speaker130, and smart television 132. For example, other voice command devicescan include a smart refrigerator, a smart thermostat, or other devicescapable of implementing a voice command interface. In anotherillustrative example, the display of the holographic interface can beperformed using other types of devices in addition to or in place ofsmart phone 138. For example, laptop computer, a tablet PC, or othersmart devices operated by user 134 can be used to display a hologram ofhouse 126 through holographic interface 144.

As yet another example, holograms can be displayed through holographicinterface 144 for other locations in addition to or in place of house126. For example, the holographic interface can display a hologram foran office, shop, or other suitable location in which user 134 may bepositioned.

For example, position 142 of user 134 can be determined by the differentsmart devices in house 126 based on detecting wireless signals fromsmart phone 138.

In yet other illustrative examples, position 142 can be determined byother devices carried by user 134. The device can be carried by user 134when user 134 holds or wears the device. The device can be anyelectronic device that is capable of determining its position andcommunicating its position to other devices. For example, the device canbe a smart device, which is an electronic device that is incommunication with other devices using wireless communication links suchas Wi-Fi, Bluetooth, Zigbee, 5G, or other types of communication links.Bluetooth is a registered trademark of Bluetooth SIG, Zigbee is aregistered trademark of Zigbee Alliance. When a device is carried byuser 134, the position of the device is considered to be the position ofuser 134.

In yet another illustrative example, holographic interface 144 can bedisplayed by other devices other than or in addition to smart phone 138.For example, holographic interface 144 can be displayed by a smartwatchor other wearable carried by user 134. As another illustrative example,holographic interface 144 can be displayed by a laptop computer, atablet computer, or other suitable device.

With reference now to FIG. 2 , a block diagram of a voice executionenvironment is depicted in accordance with an illustrative embodiment.In this illustrative example, voice execution environment 200 includescomponents that can be implemented in hardware such as the hardwareshown in network data processing system 100 in FIG. 1 .

In this illustrative example, voice commands can be processed in voiceexecution environment 200 by voice command system 202. As depicted,voice command system 202 comprises computer system 204 and voice commandprocessor 206.

Voice command processor 206 can be implemented in software, hardware,firmware or a combination thereof. When software is used, the operationsperformed by voice command processor 206 can be implemented in programinstructions configured to run on hardware, such as a processor unit.When firmware is used, the operations performed by voice commandprocessor 206 can be implemented in program instructions and data andstored in persistent memory to run on a processor unit. When hardware isemployed, the hardware may include circuits that operate to perform theoperations in voice command processor 206.

In the illustrative examples, the hardware may take a form selected fromat least one of a circuit system, an integrated circuit, an applicationspecific integrated circuit (ASIC), a programmable logic device, or someother suitable type of hardware configured to perform a number ofoperations. With a programmable logic device, the device can beconfigured to perform the number of operations. The device can bereconfigured at a later time or can be permanently configured to performthe number of operations. Programmable logic devices include, forexample, a programmable logic array, a programmable array logic, a fieldprogrammable logic array, a field programmable gate array, and othersuitable hardware devices. Additionally, the processes can beimplemented in organic components integrated with inorganic componentsand can be comprised entirely of organic components excluding a humanbeing. For example, the processes can be implemented as circuits inorganic semiconductors.

Computer system 204 is a physical hardware system and includes one ormore data processing systems. When more than one data processing systemis present in computer system 204, those data processing systems are incommunication with each other using a communications medium. Thecommunications medium can be a network. The data processing systems canbe selected from at least one of a computer, a server computer, a tabletcomputer, or some other suitable data processing system.

As depicted, computer system 204 includes a number of processor units208 that are capable of executing program instructions 210 implementingprocesses in voice command processor 206 when voice command processor2068 includes software. As used herein, a processor unit in the numberof processor units 208 is a hardware device and is comprised of hardwarecircuits such as those on an integrated circuit that respond and processinstructions and program code that operate a computer. When a number ofprocessors units 208 execute instructions for a process, the number ofprocessors units 208 is one or more processors units that can be on thesame computer or on different computers. In other words, the process canbe distributed between processors units on the same or differentcomputers in a computer system. Further, the number of processors units208 can be of the same type or different types of processors units. Forexample, a number of processor units can be selected from at least oneof a single core processor, a dual-core processor, a multi-processorcore, a general-purpose central processing unit (CPU), a graphicsprocessing unit (GPU), a digital signal processor (DSP), or some othertype of processor unit.

In this illustrative example, voice command processor 206 implementedcomputer implemented method for executing voice commands. Voice commandprocessor 206 can display view 212 of location 214 in user interface 218in response to detecting voice command 220 from user 222. Further, thedisplay view 212 of location 214 in user interface 218 can also includea display of voice command devices 216 present in location 214.

In this illustrative example, view 212 can take a number of differentforms. For example, view 212 can be selected from at least one ofthree-dimensional view, a hologram a three-dimensional image, atwo-dimensional view, or two-dimensional image, or some other suitableview of location 214.

Location 214 can also take a number of different forms. For example,location 214 can be one of is one of a house, a floor in the house, aroom, an office, a work area in a building, a store, a warehouse, amanufacturing floor or some other suitable location. Voice commanddevices 216 can be selected from at least one of an IoT device, smartdevice, a remote control, a television, a smart speaker, a smartphone, arefrigerator, or some other device that is capable of detecting thesound of speech from user 222 for processing voice commands.

In this example, user interface 218 can be displayed on computing device224. In other words, voice command processor 206 can display view 212using computing device 224. Voice command processor 206 can send view212 to computing device 224 to be displayed in user interface 218 incomputing device 224.

Computing device 224 can be a device used by user 222. For example,computing device 224 can be carried by user 222 and can be one of asmart phone, a smartwatch, a tablet computer, a laptop computer, awearable device, or some other computing device that is capable ofdisplaying user interface 218 with view 212 of location 214. In anotherillustrative example, computing device 224 can be in a locationproximate to user 222 that can be seen by user 222 in location 214. Forexample, computing device 224 can also be one of a desktop computer, asmart television, or some other suitable type of computing device.

In this example, computing device 224 includes human machine interface226. Human machine interface 226 is a hardware system and can alsoinclude software. In this illustrative example, human machine interface226 comprises display system 228 and input system 230. Display system228 is a physical hardware system and includes one or more displaydevices on which user interface 218 can be displayed. The displaydevices can include at least one of a holographic display, a headmounted holographic display, a light emitting diode (LED) display, anorganic light emitting diode (OLED) display, a projector, a flat paneldisplay, a heads-up display (HUD), or some other suitable device thatcan output information for the visual presentation of information.

User 222 is a person that can interact with user interface 218 throughuser input 232 generated by input system 230 for computing device 224.Input system 230 is a physical hardware system and can be selected fromat least one of a touchscreen, a motion sensing input device, a gesturedetection device, a cyber glove, a stylus, a mouse, a keyboard, atrackball, or some other suitable type of input device.

Voice command processor 206 displays voice command direction 234 for thevoice command in view 212 of location 214. The display of voice commanddirection 234 is displayed within view 212 of location 214 enables user222 to visually see which voice command device in voice command devices216 is currently identified for executing voice command 220. Voicecommand direction 234 can be visualized in view 212 using graphicalindicator 236. For example, voice command processor 206 can displaygraphical indicator 236 in view 212 that indicates the voice commanddirection 234. Graphical indicator 236 can include one or more graphicalelements.

Graphical indicator 236 for voice command direction 234 can be astarting point for voice command direction 234 and an ending area forvoice command direction 234. In this illustrative example, the startingpoint can be from position 242 of user 222 in location 214. The endingarea can be the position of selected voice command device 244 in voicecommand devices 216 in location 214. In other illustrative examples, theending area can be proximate to a voice command device. This startingpoint and ending area in graphical indicator 236 can be a cone.Additionally, graphical indicator 236 can include other graphicalelements such as text of the name of the voice command device.

Graphical indicator 236 can take other forms in other illustrativeexamples. For example, graphical indicator 236 can be a line, a linewith an arrow pointing to a voice command device, text, an icon,highlighting, or other suitable forms. In yet another illustrativeexample, graphical indicator 236 for voice command direction 234 can bea graphical element associated with a voice command device. For example,graphical indicator 236, or a graphical element in a graphical indicatorcan be considered to be associated with selecting a voice command devicein voice command devices 216 when the graphical indicator 236 isdisplayed in a manner that draws attention to a voice command devicedisplayed in view 212 of location 214. The graphical elements can be anicon, text, flashing text, or other suitable indicators.

In this illustrative example, voice command processor 206 can change thevoice command direction 234 in response user input 232. For example,user 222 can make a gesture to move voice command direction 234 from onevoice command device to another voice command device in voice commanddevices 216. In yet another illustrative example, user 222 may operate astylus, use a touchscreen, or some other device to change voice commanddirection 234 to select a different voice command device for executingvoice command 220.

Additionally, voice command processor 206 can receive user input 232that edits voice command 220 for execution using selected voice commanddevice 244. For example, user input 232 can edit voice command 220 tochange a first song requested in voice command 220 to a second song. Inyet another illustrative example, user input 232 can edit voice command220 to change a temperature for an air conditioning unit from one valueto another value. In another illustrative example, user input 232 canedit voice command 220 from playing an audio file to display a videofile.

Voice command processor 206 can identify a voice command device from thevoice command devices 216 in location 214 based on voice commanddirection 234 to form selected voice command device 244. Voice commandprocessor 206 can execute voice command 220 using selected voice commanddevice 244.

In this illustrative example, voice command processor 206 can determinevoice command direction 234 in a number of different ways. For example,voice command processor 206 can determine voice command direction 234for voice command 220 based on prediction 246 of voice command direction234 using position 242 of user 222 in location 214. In this example,prediction 246 can include determining the direction of voice command220 based on the detection of the user's voice by voice command devices216. These voice command devices function as a sensor array. Beamformingtechnology can be used to determine the origination and direction ofvoice command 220. Beamforming is a signal processing technique. Withthis technique, a microphone array is used to form a spatial filterwhich can extract a signal from a specific direction and reduce thecontamination of signals from other directions.

Based on the actual direction of voice command 220, simulation model 248can be used to determine whether that direction should be used orwhether another direction should be used based on historical data 250.For example, a user sitting at a desk may generate a voice command toplay music. The voice command direction 234 may be directed towards atelevision in front of user 222. However, user 222 may desire to havethe music played by a smart speaker located behind user 222. Based oncorrections to the voice command direction and historical data 250,simulation model 248 can determine that even though the direction of thevoice command as detected by voice command device 216 is towards thesmart television, voice command direction 234 should actually be to thesmart speaker located behind user 222.

As depicted, voice command processor 206 can predict voice commanddirection 234 for voice command 220 using simulation model 248 andposition 242 of user 222 to form prediction 246 of voice commanddirection 234. Prediction 246 of voice command direction 234 can includea voice command device for executing the voice command 220 and a set ofactions to be performed for voice command 220. As used herein, “a setof” when used with reference to items means one or more items. Forexample, a set of actions can be one or more actions. In thisillustrative example, the actions can include at least one of respondingto an inquiry, activating a device, changing a device setting, playingan audio file, playing a video, or other suitable actions.

Simulation model 248 can be created using historical data 250 of priorvoice commands 252.

Simulation model 248 can take a number of different forms. For example,simulation model 248 can be an artificial intelligence system, machinelearning model, a knowledge-based model, or some other suitable model.An artificial intelligence system is a system that has intelligentbehavior and can be based on the function of a human brain. Anartificial intelligence system comprises at least one of an artificialneural network, a cognitive system, a Bayesian network, a fuzzy logic,an expert system, a natural language system, or some other suitablesystem. Machine learning is used to train the artificial intelligencesystem. Machine learning involves inputting data to the process andallowing the process to adjust and improve the function of theartificial intelligence system.

A machine learning model is a type of artificial intelligence model thatcan learn without being explicitly programmed. A machine learning modelcan learn based training data input into the machine learning model. Themachine learning model can learn using various types of machine learningalgorithms. The machine learning algorithms include at least one of asupervised learning, and unsupervised learning, a feature learning, asparse dictionary learning, and anomaly detection, association rules, orother types of learning algorithms. Examples of machine learning modelsinclude an artificial neural network, a decision tree, a support vectormachine, a Bayesian network, a genetic algorithm, and other types ofmodels. These machine learning models can be trained using data andprocess additional data to provide a desired output.

Additionally, voice command processor 206 can update historical data 250for prior voice commands 252 with the voice command direction 234 usedto execute the voice command 220 in which voice command direction 234was selected in response to user input 232. In this example, simulationmodel 248 can be further trained using historical data 250 with theupdates to predict the voice command direction 234 for voice command220. With this additional training, simulation model 248 can moreaccurately predict voice command direction 234 when receiving voicecommand 220 and position 242 of user 222.

In one illustrative example, one or more solutions are present thatovercome a problem with executing voice commands in a desired manner. Asa result, one or more illustrative examples can render a view of thephysical surrounding around the user in a location and a visualbisection of the direction of the voice command in the view. One or moreillustrative examples can predict the direction of the voice command andidentify a particular voice command device for executing the voicecommand. The user can determine whether to accept the predicted voicecommand direction to interact with the view to change the voice commanddirection such that another voice command device executes the voicecommand. In one or more illustrative examples, the user can also changethe voice commands prior to the execution of the voice command. Further,in one or more illustrative examples, the selection of voice commanddevices and the display view can be selected based on which location theuser is present.

Computer system 204 can be configured to perform at least one of thesteps, operations, or actions described in the different illustrativeexamples using software, hardware, firmware or a combination thereof. Asa result, computer system 204 operates as a special purpose computersystem in which voice command processor 206 in computer system 204enables managing execution of voice commands from a user in a location.In particular, voice command processor 206 transforms computer system204 into a special purpose computer system as compared to currentlyavailable general computer systems that do not have voice commandprocessor 206.

In the illustrative example, the use of voice command processor 206 incomputer system 204 integrates processes into a practical applicationfor executing voice commands that increases the performance of computersystem 204. In other words, voice command processor 206 in computersystem 204 is directed to a practical application of processesintegrated into voice command processor 206 in computer system 204 thatdisplays a view of a location to a user, displays a visualization of thedirection of the voice command using a graphical indicator, enables theuser to interact with the graphical indicators in the view to change thedirection of the voice command such that a desired voice command deviceis selected for executing the voice command, and executes the voicecommand using a desired voice command device.

The illustration of voice execution environment 200 in FIG. 2 is notmeant to imply physical or architectural limitations to the manner inwhich an illustrative embodiment can be implemented. Other components inaddition to or in place of the ones illustrated may be used. Somecomponents may be unnecessary. Also, the blocks are presented toillustrate some functional components. One or more of these blocks maybe combined, divided, or combined and divided into different blocks whenimplemented in an illustrative embodiment.

For example, voice command processor 206 running in computer system 204is shown as a separate component from computing device 224 in thisfunctional block diagram. In this implementation, voice commandprocessor 206 can be such that program instructions 210 for thiscomponent run on one or more processor units in computing device 224used by user 222. In other illustrative examples, voice commandprocessor 206 can run on a server computer or be distributed amongseveral computers in computer system 204.

As another example, one or more command directions can be identified inaddition to voice command direction 234. The one or more additionalvoice command directions can be displayed in view 212 using one or moregraphical indicators in addition to graphical indicator 236. As result,user 222 can decide to execute voice command 220 using more than onevoice command device in voice command devices 216.

With reference to FIG. 3 , a process flow diagram for executing voicecommands is depicted in accordance with an illustrative embodiment.Process flow 300 can be implemented in hardware, software, or both. Whenimplemented in software, the process can take the form of programinstructions that is run by one of more processor units located in oneor more hardware devices in one or more computer systems. For example,the process can be implemented in using the different componentsillustrated in FIG. 1 and FIG. 2 .

As depicted, process flow 300 begins with user 302 opting into usingvoice command management. In this example, process flow 300 collectshistorical voice commands 304 and IoT device information 306.

In this example, historical voice commands 304 are voice commandspreviously made by user 302. These voice commands made by user 302 canbe saved as historical voice commands 304. Historical voice commands 304can include information about how voice commands are submitted, whattype of voice commands are submitted, which devices are executing thevoice commands, and other information about the voice commands made byuser 302.

IoT device information 306 is information about voice command devicesthat are to be used for executing voice commands by user 302. In thisillustrative example, IoT device information 306 is for IoT devicesregistered by user 302. Each IoT device can be uniquely identified inIoT device information 306 for executing voice commands. identifying IoTdevice information also includes the position of each IoT device.

Additionally, the process flow also determines location configuration308 for a location in which IoT devices are located. In this example,location configuration 308 includes information about dimensions of thephysical surrounding where voice commands will be executed by IoTdevices. Location configuration 308 can be for a number of locations.Location configuration 308 can be used by process flow 300 to generate anumber of holograms 310. A holograph in holograms 310 is created foreach location in location configuration 308. As depicted, historicalvoice commands 304, IoT device information 306, location configuration308, and hologram 310 are stored in database 312.

As depicted, voice command 314 is a trigger for process flow 300 todisplay a hologram from holograms 310 in holographic interface 316 bysmart phone 318. The hologram selected from holograms 310 for display isfor the current location in which user 302 is located. The location ofuser 302 can be determined by smart phone 318 or some other wearablesmart device worn by user 302 in this illustrative example. Thislocation can be used to identify and display a hologram in holographicinterface 316.

In displaying holographic interface 316, a voice command direction isdisplayed within a hologram in holographic interface 316. In thisillustrative example, the voice command direction can be predicted usingsimulation model 319. Simulation model 319 can predict the voice commanddirection identifying the position of user 302 and using an audio sensorsystem provided by different voice command devices. The audio sensorsystem can be used to detect the origination and direction of the voicecommand generated by user 302.

The voice command direction can also be based on historical voicecommands 304. For example, simulation model 319 can be a machinelearning model trained using historical voice commands 304.

As result, user 302 can visualize the entire surrounding in the locationby viewing holographic interface 316 that displays the hologram. Inaddition, user 302 can also visualize the voice command direction withinthe hologram through a graphical indicator displayed in the hologram toidentify the direction of the voice command.

User 302 can select the voice command direction by interacting withholographic interface 316. For example, user 302 can manipulate thegraphical indicator providing the visualization of the voice commanddirection to change the voice command direction. The change in the voicecommand direction can select a different voice command device to executethe voice command. As result, holographic interface 316 enables user 302to selectively execute a voice command in a location by selecting thevoice command direction where the voice command is to be executed. Inthis manner, user 302 can perform directional command generation. Thevoice command direction identified a voice command device that isselected for executing the voice command.

In response to user 302 selecting the voice command direction, processflow 300 executes the voice command using selected voice command device320 identified by the voice command direction. In this example,executing the voice command using selected voice command device 320means that selected voice command device 320 provides the response toreply. For example, selected voice command device 320 will play music,provide weather information, confirm execution of a task such as turningon a light, lower a temperature, or other response.

Process flow 300 can also receive input 322 for feedback 324 on thevoice command execution by selected voice command device 320. Feedback324 can indicate whether selected voice command device 320 was thecorrect voice command device for executing the voice command. Feedback324 can also be inferred based on whether user three zero to changes thevoice command direction in holographic interface 316. For example, ifuser does not change the voice command direction, then selected voicecommand device 320 identified by the voice command direction is thecorrect device. If the user changes the voice command direction, thenthe initially selected device was not the correct device for executingthe voice command.

Process flow 300 can save feedback 324 in database 312. In thisillustrative example, feedback 324 can comprise both positive andnegative results in voice command execution by voice command devices.Additionally, process flow 300 can also perform additional training forpredicting future voice command execution.

The illustration of process flow 300 is provided as an example of oneimplementation for executing voice commands using a view of the locationand user interface in the form of holographic interface 316. Thisillustration is not meant to limit the manner in which otherillustrative examples can be implemented to manage the execution ofvoice commands using interfaces to visualize a location and the voicecommand direction. For example, another example can display the locationand voice command direction using a two-dimensional or three-dimensionalview displayed on a display system in place of the holographic display.In yet another illustrative example, more than one voice command devicecan be selected to execute the same voice command.

Turning to FIG. 4 , a pictorial illustration of a user interface isdepicted in accordance with an illustrative embodiment. As depicted,holographic interface 400 is an example of one implementation for userinterface 218 in FIG. 2 . Smart phone 402 is an example of animplementation for computing device 224 in FIG. 2 . As depicted, smartphone 402 includes a holographic display that operates to displayholographic interface 400 to user 404.

In this illustrative example, holographic interface 400 is displayed inresponse to detecting a voice command from user 404. As depicted,holographic interface 400 displayed by smart phone 402 comprises athree-dimensional view in the form of hologram 406 of a house in whichuser 404 is located. If user 404 is in a different location such as anoffice, hologram 406 displayed is that of the office in which user 404is located in place of the house. In addition to hologram 406 of thehouse, smart phone 402 displays graphical indicator 408 in hologram 406in holographic interface 400 to indicate the voice command direction fora command to be executed. In other words, graphical indicator 408provides a visualization of the direction of the voice command.Additionally, graphical indicator 408 can also identify the particularvoice command device that is currently selected for executing the voicecommand.

As depicted, graphical indicator 408 has starting point 410 and endingarea 412. Starting point 410 indicates the location of user 404 withinthe house. Ending area 412 identifies the voice command device that iscurrently identified for executing the voice command. In this example,area 412 encompasses smart speaker 414 indicating that smart speaker 414is currently selected to execute the voice command.

In another illustrative example, in the area 412 may not encompass smartspeaker 414. In this example, smart speaker 414 may be associated with agraphical indicator to indicate that smart speaker 414 is the selectedvoice command device for executing the voice command with the currentvoice command direction indicated by graphical indicator 408. Forexample, a graphical indicator can be a highlighting roof flashinggraphic to draw attention to smart speaker 414.

If the user desires to have another voice command device execute thevoice command, user 404 can interact with holographic interface 400 tochange the direction of the voice command. In this illustrative example,smart phone 402 may also include position or gesture sensors to detectuser 404 for interacting with graphical indicator 408 displayed inholographic interface 400.

For example, user 404 can manipulate graphical indicator 408 such thatgraphical indicator 408 has position 416. With position 416, the voicecommand direction identifies smart speaker 418 instead of smart speaker414 as the selected voice command device to execute the voice command.

The illustration of holographic interface 400 displayed by smart phone402 in FIG. 4 is not meant to limit the manner in which otherillustrative examples can be implemented. For example, a different typeof computing device can be used in place of smart phone 402. Forexample, holographic interface 400 can be displayed using a tabletcomputer, a smartwatch, a desktop computer, or some other suitabledevice that has holographic display capabilities. In yet anotherillustrative example, a three-dimensional view can be displayed ondisplay screen on smart phone 402 in place of holographic interface 400.

Turning next to FIG. 5 , a flowchart of a process for executing a voicecommand is depicted in accordance with an illustrative embodiment. Theprocess in FIG. 5 can be implemented in hardware, software, or both.When implemented in software, the process can take the form of programinstructions that is run by one of more processor units located in oneor more hardware devices in one or more computer systems. For example,the process can be implemented in voice command processor 206 incomputer system 204 in FIG. 2 .

The process begins by displaying a view of a location with voice commanddevices in response to detecting the voice command from a user (step500). The process displays a voice command direction for the voicecommand in the view of the location (step 502). In step 502, a computingdevice can be such as smart phone, a smart watch, a wearble IoT device,or some other suitable device.

The process changes the voice command direction in response to a userinput (step 504). The process identifies a voice command device from thevoice command devices in the location based on the voice commanddirection to form a selected voice command device (step 506). Theprocess executes the voice command using the selected voice commanddevice (step 508). The process terminates thereafter.

With reference next to FIG. 6 , a flowchart of a process for editing avoice command is depicted in accordance with an illustrative embodiment.The step in this flowchart is an example of a step that can be performedin the process in FIG. 5 .

The process edits the voice command in response to another user input toform the voice command for execution using the selected voice commanddevice (step 600). The process terminates thereafter.

With now to FIG. 7 , a flowchart of a process for determining a voicecommand direction is depicted in accordance with an illustrativeembodiment. The step in this flowchart is an example of a step that canbe performed in the process in FIG. 5 .

The process determines the voice command direction for the voice commandbased a prediction of the voice command direction using a position ofthe user (step 700). The process terminates thereafter.

In FIG. 8 , a flowchart of a process for predicting a voice commanddirection is depicted in accordance with an illustrative embodiment. Thestep in this flowchart is an example of a step that can be performed inthe process in FIG. 7 to generate the prediction of the voice commanddirection.

The process predicts the voice command direction for the voice commandusing a simulation model and the position of the user to form theprediction of the voice command direction (step 800). The processterminates thereafter. In step 800, the simulation model is createdusing historical data of prior voice commands.

Turning now to FIG. 9 , a flowchart of a process for displaying thevoice command direction is depicted in accordance with an illustrativeembodiment. The step in this flowchart is an example of animplementation of step 502 in FIG. 5 .

The process displays a graphical indicator in the view that indicatesthe voice command direction (step 900). The process terminatesthereafter.

The flowcharts and block diagrams in the different depicted embodimentsillustrate the architecture, functionality, and operation of somepossible implementations of apparatuses and methods in an illustrativeembodiment. In this regard, each block in the flowcharts or blockdiagrams may represent at least one of a module, a segment, a function,or a portion of an operation or step. For example, one or more of theblocks can be implemented as program instructions, hardware, or acombination of the program instructions and hardware. When implementedin hardware, the hardware may, for example, take the form of integratedcircuits that are manufactured or configured to perform one or moreoperations in the flowcharts or block diagrams. When implemented as acombination of program instructions and hardware, the implementation maytake the form of firmware. Each block in the flowcharts or the blockdiagrams can be implemented using special purpose hardware systems thatperform the different operations or combinations of special purposehardware and program instructions run by the special purpose hardware.

In some alternative implementations of an illustrative embodiment, thefunction or functions noted in the blocks may occur out of the ordernoted in the figures. For example, in some cases, two blocks shown insuccession can be performed substantially concurrently, or the blocksmay sometimes be performed in the reverse order, depending upon thefunctionality involved. Also, other blocks can be added in addition tothe illustrated blocks in a flowchart or block diagram.

Turning now to FIG. 10 , a block diagram of a data processing system isdepicted in accordance with an illustrative embodiment. Data processingsystem 1000 can be used to implement server computer 104, servercomputer 106, client devices 110, in FIG. 1 . Data processing system1000 can also be used to implement computer system 204 in FIG. 2 . Inthis illustrative example, data processing system 1000 includescommunications framework 1002, which provides communications betweenprocessor unit 1004, memory 1006, persistent storage 1008,communications unit 1010, input/output (I/O) unit 1012, and display1014. In this example, communications framework 1002 takes the form of abus system.

Processor unit 1004 serves to execute instructions for software that canbe loaded into memory 1006. Processor unit 1004 includes one or moreprocessors. For example, processor unit 1004 can be selected from atleast one of a multicore processor, a central processing unit (CPU), agraphics processing unit (GPU), a physics processing unit (PPU), adigital signal processor (DSP), a network processor, or some othersuitable type of processor. Further, processor unit 1004 can may beimplemented using one or more heterogeneous processor systems in which amain processor is present with secondary processors on a single chip. Asanother illustrative example, processor unit 1004 can be a symmetricmulti-processor system containing multiple processors of the same typeon a single chip.

Memory 1006 and persistent storage 1008 are examples of storage devices1016. A storage device is any piece of hardware that is capable ofstoring information, such as, for example, without limitation, at leastone of data, program instructions in functional form, or other suitableinformation either on a temporary basis, a permanent basis, or both on atemporary basis and a permanent basis. Storage devices 1016 may also bereferred to as computer-readable storage devices in these illustrativeexamples. Memory 1006, in these examples, can be, for example, arandom-access memory or any other suitable volatile or non-volatilestorage device. Persistent storage 1008 may take various forms,depending on the particular implementation.

For example, persistent storage 1008 may contain one or more componentsor devices. For example, persistent storage 1008 can be a hard drive, asolid-state drive (SSD), a flash memory, a rewritable optical disk, arewritable magnetic tape, or some combination of the above. The mediaused by persistent storage 1008 also can be removable. For example, aremovable hard drive can be used for persistent storage 1008.

Communications unit 1010, in these illustrative examples, provides forcommunications with other data processing systems or devices. In theseillustrative examples, communications unit 1010 is a network interfacecard.

Input/output unit 1012 allows for input and output of data with otherdevices that can be connected to data processing system 1000. Forexample, input/output unit 1012 may provide a connection for user inputthrough at least one of a keyboard, a mouse, or some other suitableinput device. Further, input/output unit 1012 may send output to aprinter. Display 1014 provides a mechanism to display information to auser.

Instructions for at least one of the operating system, applications, orprograms can be located in storage devices 1016, which are incommunication with processor unit 1004 through communications framework1002. The processes of the different embodiments can be performed byprocessor unit 1004 using computer-implemented instructions, which maybe located in a memory, such as memory 1006.

These instructions are referred to as program instructions, computerusable program instructions, or computer-readable program instructionsthat can be read and executed by a processor in processor unit 1004. Theprogram instructions in the different embodiments can be embodied ondifferent physical or computer-readable storage media, such as memory1006 or persistent storage 1008.

Program instructions 1018 is located in a functional form oncomputer-readable media 1020 that is selectively removable and can beloaded onto or transferred to data processing system 1000 for executionby processor unit 1004. Program instructions 1018 and computer-readablemedia 1020 form computer program product 1022 in these illustrativeexamples. In the illustrative example, computer-readable media 1020 iscomputer-readable storage media 1024.

Computer-readable storage media 1024 is a physical or tangible storagedevice used to store program instructions 1018 rather than a medium thatpropagates or transmits program instructions 1018. Computer readablestorage media 1024, as used herein, is not to be construed as beingtransitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire, as used herein, is not to be construed as beingtransitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Alternatively, program instructions 1018 can be transferred to dataprocessing system 1000 using a computer-readable signal media. Thecomputer-readable signal media are signals and can be, for example, apropagated data signal containing program instructions 1018. Forexample, the computer-readable signal media can be at least one of anelectromagnetic signal, an optical signal, or any other suitable type ofsignal. These signals can be transmitted over connections, such aswireless connections, optical fiber cable, coaxial cable, a wire, or anyother suitable type of connection.

Further, as used herein, “computer-readable media 1020” can be singularor plural. For example, program instructions 1018 can be located incomputer-readable media 1020 in the form of a single storage device orsystem. In another example, program instructions 1018 can be located incomputer-readable media 1020 that is distributed in multiple dataprocessing systems. In other words, some instructions in programinstructions 1018 can be located in one data processing system whileother instructions in program instructions 1018 can be located in onedata processing system. For example, a portion of program instructions1018 can be located in computer-readable media 1020 in a server computerwhile another portion of program instructions 1018 can be located incomputer-readable media 1020 located in a set of client computers.

The different components illustrated for data processing system 1000 arenot meant to provide architectural limitations to the manner in whichdifferent embodiments can be implemented. In some illustrative examples,one or more of the components may be incorporated in or otherwise form aportion of, another component. For example, memory 1006, or portionsthereof, may be incorporated in processor unit 1004 in some illustrativeexamples. The different illustrative embodiments can be implemented in adata processing system including components in addition to or in placeof those illustrated for data processing system 1000. Other componentsshown in FIG. 10 can be varied from the illustrative examples shown. Thedifferent embodiments can be implemented using any hardware device orsystem capable of running program instructions 1018.

Thus, illustrative embodiments provide a computer implemented method,computer system, and computer program product for executing a voicecommand. A number of processor units displays a view of a location withvoice command devices in response to detecting the voice command from auser. The number of processor units displays a voice command directionfor the voice command in the view of the location. The number ofprocessor units changes the voice command direction in response to auser input. The number of processor units identifies a voice commanddevice from the voice command devices in the location based on the voicecommand direction to form a selected voice command device. The number ofprocessor units executes the voice command using the selected voicecommand device.

The description of the different illustrative embodiments has beenpresented for purposes of illustration and description and is notintended to be exhaustive or limited to the embodiments in the formdisclosed. The different illustrative examples describe components thatperform actions or operations. In an illustrative embodiment, acomponent can be configured to perform the action or operationdescribed. For example, the component can have a configuration or designfor a structure that provides the component an ability to perform theaction or operation that is described in the illustrative examples asbeing performed by the component. Further, to the extent that terms“includes”, “including”, “has”, “contains”, and variants thereof areused herein, such terms are intended to be inclusive in a manner similarto the term “comprises” as an open transition word without precludingany additional or other elements.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Not allembodiments will include all of the features described in theillustrative examples. Further, different illustrative embodiments mayprovide different features as compared to other illustrativeembodiments. Many modifications and variations will be apparent to thoseof ordinary skill in the art without departing from the scope and spiritof the described embodiment. The terminology used herein was chosen tobest explain the principles of the embodiment, the practical applicationor technical improvement over technologies found in the marketplace, orto enable others of ordinary skill in the art to understand theembodiments disclosed here.

What is claimed is:
 1. A computer implemented method for executing avoice command, the method comprising: displaying, by a number ofprocessor units, a view of a location with voice command devices inresponse to detecting the voice command from a user; displaying, by thenumber of processor units, a voice command direction for the voicecommand in the view of the location; changing, by the number ofprocessor units, the voice command direction in response to a userinput; and identifying, the number of processor units, a voice commanddevice from the voice command devices in the location based on the voicecommand direction to form a selected voice command device; andexecuting, by the number of processor units, the voice command using theselected voice command device.
 2. The computer implemented method ofclaim 1 further comprising: editing, by the number of processor units,the voice command in response to another user input to form the voicecommand for execution using the selected voice command device.
 3. Thecomputer implemented method of claim 1 further comprising: determining,by the number of processor units, the voice command direction for thevoice command based a prediction of the voice command direction using aposition of the user.
 4. The computer implemented method of claim 3further comprising: predicting, by the number of processor units, thevoice command direction for the voice command using a simulation modeland the position of the user to form the prediction of the voice commanddirection, wherein the simulation model is created using historical dataof prior voice commands.
 5. The computer implemented method of claim 3,wherein the prediction of the voice command direction includes a voicecommand device for executing the voice command and a set of actions tobe performed for the voice command.
 6. The computer implemented methodof claim 4 further comprising: updating, by the number of processorunits, the historical data for prior voice commands with the voicecommand direction used to execute the voice command in which the voicecommand direction was selected in response to the user input, whereinthe simulation model is trained using the historical data to predict thevoice command direction for the voice command.
 7. The computerimplemented method of claim 1, wherein displaying the voice commanddirection for the voice command in the view of the location comprises:displaying, by the number of processor units, a graphical indicator inthe view that indicates the voice command direction.
 8. The computerimplemented method of claim 1, wherein the view is selected from atleast one of a three-dimensional view, a hologram a three-dimensionalimage, a two-dimensional view, or a two-dimensional image.
 9. Thecomputer implemented method of claim 1, wherein the voice commanddevices are selected from at least one of an IoT device, a smart device,a remote control, a television, a smart speaker, a smartphone, arefrigerator.
 10. The computer implemented method of claim 1, whereinthe location is one of a house, a floor in the house, a room, an office,a work area in a building, a store, a warehouse, and a manufacturingfloor.
 11. A computer system comprising: a number of processor units,wherein the number of processor units executes instructions to: displaya view of a location with voice command devices in response to detectinga voice command from a user; display a voice command direction for thevoice command in the view of the location; change the voice commanddirection in response to a user input; and identify a voice commanddevice from the voice command devices in the location based on the voicecommand direction to form a selected voice command device; and executethe voice command using the selected voice command device
 12. Thecomputer system of claim 11, wherein the number of processor unitsexecutes instructions to: edit the voice command in response to anotheruser input to form the voice command for execution using the selectedvoice command device.
 13. The computer system of claim 11, wherein thenumber of processor units executes instructions to: determine the voicecommand direction for the voice command based a prediction of the voicecommand direction using a position of the user.
 14. The computer systemof claim 13, wherein the number of processor units executes instructionsto: predict the voice command direction for the voice command using asimulation model and a position of the user to form the prediction ofthe voice command direction, wherein the simulation model is createdusing historical data of prior voice commands.
 15. The computer systemof claim 13, wherein the prediction of the voice command directionincludes a voice command device for executing the voice command and aset of actions to be performed for the voice command.
 16. The computersystem of claim 14, wherein the number of processor units executesinstructions to: update, by the number of processor units, thehistorical data for prior voice commands with the voice command made inresponse to the user input, wherein the simulation model is trainedusing the historical data to predict the voice command direction for thevoice command.
 17. The computer system of claim 11, in displaying thevoice command direction for the voice command in the view of thelocation, wherein the number of processor units executes instructionsto: displays a graphical indicator in the view that indicates the voicecommand direction.
 18. A computer program product for executing a voicecommand, the computer program product comprising a computer readablestorage medium having program instructions embodied therewith, theprogram instructions executable by a computer system to cause thecomputer system to perform a method of: displaying, by a number ofprocessor units, a view of a location with voice command devices inresponse to detecting the voice command from a user; displaying, by thenumber of processor units, a voice command direction for the voicecommand in the view of the location; changing, by the number ofprocessor units, the voice command direction in response to a userinput; identifying, the number of processor units, a voice commanddevice from the voice command devices in the location based on the voicecommand direction to form a selected voice command device; andexecuting, by the number of processor units, the voice command using theselected voice command device
 19. The computer program product of claim18 further comprising: editing, by the number of processor units, thevoice command in response to another user input to form the voicecommand for execution using the selected voice command device.
 20. Thecomputer program product of claim 18 further comprising: determining, bythe number of processor units, the voice command direction for the voicecommand based a prediction of the voice command direction using aposition of the user.